1
힙 할당 컬렉션의 기초
AI034Lesson 8
00:00

성장의 구조

리스트의 컬렉션은 예를 들어 Vec<T> 그리고 String는 기본 유형이 아닙니다. 이들은 라이브러리에서 정의한 구조이며, std 모듈에 존재합니다. 이러한 기반은 리스트가 모듈 시스템을 통해 데이터를 어떻게 구성하고 메모리를 어떻게 관리하는지를 결정합니다. RAII(자원 확보는 초기화이다)간단한 타입은 스택에 존재하지만, 컬렉션은 힙 저장소 동적 성장을 위해 사용되며, 이는 메모리가 명시적으로 Drop 트레이트를 통해 관리되어야 함을 의미합니다.

모듈 해석 및 가시성

리스트 컴파일러는 크레이트 루트(src/lib.rs 또는 src/main.rs)부터 시작하여 모듈 트리를 매핑합니다. 예를 들어 mod front_of_house; 선언은 컴파일러가 다음 파일을 검색하도록 유도합니다: src/front_of_house.rs 또는 src/front_of_house/mod.rs를 사용하면, 캡슐화된 힙 할당 데이터가 직관적인 경로를 통해 안전하게 인터페이스될 수 있습니다. pub 수정자와 재내보내기(pub use)를 통해 캡슐화된 힙 할당 데이터가 직관적인 경로를 통해 안전하게 인터페이스될 수 있습니다.

파일 해석 트리src/lib.rssrc/front_of_house.rs- hosting.rspub use crate::front_of_house;let list = Vec::new();🦀?삽질: mod.rs + name.rs 충돌컴파일러 오류 발생(183페이지)

모듈의 범위가 끝나는 즉시, Drop 구현은 자동으로 힙 메모리를 회수합니다: $$Memory_{reclaimed} = \sum Drop(Elements)$$.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>